/* PROJECTO: Projecto 3
 * FICHEIRO: casatest.cpp
 *
 * DESCRIÇÃO: Codigo correspondente ao teste da class casa.
 *
 * TURMA / GRUPO: Turma 1 / Grupo 12
 * AUTORES: Fábio Domingo da Silva Rodrigues
 *          Rolando Emanuel Lopes Pereira
 *
 * DECLARAÇÃO:
 * Declaramos sob compromisso de honra que este trabalho nas suas partes
 * constituintes de código (e relatório, se aplicável) é original e da nossa
 * autoria, não correspondendo, portanto, a cópia ou tradução de outros
 * trabalhos já realizados, na FEUP ou fora dela.
 * Mais declaramos que todos os documentos ou código que serviram de base ao
 * desenvolvimento do trabalho descrito no relatório e seus anexos são
 * adequadamente citados e explicados na respectiva secção de referências
 * bibliográficas e que todas as eventuais partes transcritas ou utilizadas de
 * outras fontes estão devidamente assinaladas, identificadas e evidenciadas.
 * Subscrevemos a declaração acima:
 * Fábio Domingo da Silva Rodrigues
 * Rolando Emanuel Lopes Pereira
 *
 * REFERÊNCIAS E FONTES DE INFORMAÇÃO UTILIZADAS:
 *
 * SISTEMA OPERATIVO:
 * Debian 4.0
 * AMBIENTE DE DESENVOLVIMENTO:
 * Vim 7.0.235
 *
 * DATA DE INÍCIO: 20/05/2009
 * DATA DE CONCLUSÃO: 30/05/2009
 *
 * */

#include "casatest.h"
CPPUNIT_TEST_SUITE_REGISTRATION (CasaTests);

void CasaTests::setUp(void)
{
    casa_c0 = new Casa(1, "Casa1", 100, "normal", 200, 30, 50);

    casa_c1 = new Casa(1, "Casa1", 100, "normal", 200, 30, 50);
    casa_c1->addCasas();

    casa_c4 = new Casa(1, "Casa1", 100, "normal", 200, 30, 50);
    casa_c4->addCasas();
    casa_c4->addCasas();
    casa_c4->addCasas();
    casa_c4->addCasas();


    casa_h = new Casa(1, "Casa1", 100, "normal", 200, 30, 50);
    casa_h->addCasas();
    casa_h->addCasas();
    casa_h->addCasas();
    casa_h->addCasas();
    casa_h->addCasas();
    casa_h->addCasas();
}

void CasaTests::tearDown (void)
{
    delete casa_c0;
    delete casa_c1;
    delete casa_c4;
    delete casa_h;
}

void CasaTests::getRendaRealTest(void)
{
    // Como a casa_c0 nao tem casas extas, a renda deve de ser igual a rendabase
    CPPUNIT_ASSERT_EQUAL (casa_c0->getRendaReal(), 200);
    CPPUNIT_ASSERT_EQUAL (casa_c1->getRendaReal(), 300);
    CPPUNIT_ASSERT_EQUAL (casa_c4->getRendaReal(), 600);
    CPPUNIT_ASSERT_EQUAL (casa_h->getRendaReal(), 900);
}
